package com.offcn.dongyimai.file.controller;

import com.offcn.dongyimai.common.utils.FastDFSClient;
import com.offcn.dongyimai.common.utils.Result;
import com.offcn.dongyimai.common.utils.StatusCode;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author Administrator
 * @date 2021/7/30 16:48
 * @description
 **/
@RestController
@RequestMapping("/file")
public class UploadController {

    @Value("${FILE_SERVER_URL}")
    private String FILE_SERVER_URL;     // 文件服务器的地址

    @PostMapping("/upload")
    public Result uploadFile(@RequestParam(name = "file") MultipartFile file){

        // 1、获取文件的名称
        String filename = file.getOriginalFilename();
        // 2、截取文件的后缀名
        String suffix = filename.substring(filename.lastIndexOf(".") + 1);
        try {
            // 3、创建一个 FastDFS 的客户端
            FastDFSClient fastDFSClient = new FastDFSClient("classpath:fdfs_client.conf");
            // 4、执行上传文件操作
            String path = fastDFSClient.uploadFile(file.getBytes(), suffix);
            // 5、拼接返回的 url 和 ip 地址，拼装成完整的 url
            String url = FILE_SERVER_URL + path;
            // 6、返回url文件地址
            return new Result(true, StatusCode.OK,"上传成功",url);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false,StatusCode.ERROR,"上传失败");
        }
    }


}
